(define (print x) (builtin print x))
(define (null? l) (builtin eq? l '()))
(define (cons x y) (builtin cons x y))
(define (car x) (builtin car x))
(define (cdr x) (builtin cdr x))

(define (print-each list)
  (if (null? list)
      #t
     (begin (print (car list))
            (print-each (cdr list)))))

(define (map f l)
  (if (null? l)
      '()
      (cons (f (car l))
	    (map f (cdr l)))))

(define stuff
  (cons (cons "h" "w")
	(cons (cons "e" "o")
	      (cons (cons "l" "r")
		    (cons (cons "l" "l")
			  (cons (cons "o" "d")
			       '()))))))

(define scm-main
  (begin (print-each (map car stuff))
	 (print-each (map cdr stuff))))

